comment "Gdb Options"

config BR2_PACKAGE_GDB
	bool "Build gdb debugger for the Target"
	select BR2_PACKAGE_NCURSES
	depends on BR2_USE_WCHAR
	depends on !BR2_sh && !BR2_sh64 && !BR2_avr32 && !BR2_microblaze && !BR2_bfin && !BR2_aarch64
	# The newest versions of gdb require thread debugging in the
	# toolchain. The only cases for which this is not needed is if
	# we use gdb 6.8 (marked deprecated)
	depends on \
		BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED || \
		BR2_DEPRECATED || \
		BR2_bfin
	help
	    Build the full gdb debugger to run on the target.

comment "Gdb debugger for the target needs WCHAR support in toolchain"
	depends on !BR2_USE_WCHAR

config BR2_PACKAGE_GDB_SERVER
	bool "Build gdb server for the Target"
	depends on !BR2_TOOLCHAIN_EXTERNAL
	help
	    Build the gdbserver stub to run on the target.
	    A full gdb is needed to debug the progam.

config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	bool "Copy gdb server to the Target"
	depends on BR2_TOOLCHAIN_EXTERNAL
	help
	  Copy the gdbserver provided by the external toolchain to the
	  target.

config BR2_PACKAGE_GDB_HOST
	bool "Build gdb for the Host"
	# cross-gdb is supposed to be part of the external
	# toolchain. And the build currently fails.
	depends on !BR2_TOOLCHAIN_EXTERNAL
	help
	    Build gdb to run on the host to debug programs run on the target.

choice
	prompt "GDB debugger Version"
	default BR2_GDB_VERSION_6_6 if BR2_bfin
	default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
	default BR2_GDB_VERSION_7_4
	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST
	help
	  Select the version of gdb you wish to use.

	config BR2_GDB_VERSION_6_6
		bool "gdb 6.6"
		depends on BR2_bfin

	config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
		depends on BR2_avr32
		bool "gdb 6.7.1-avr32-2.1.5"

	config BR2_GDB_VERSION_6_8
		bool "gdb 6.8"
		depends on !(BR2_avr32 || BR2_bfin)
		depends on BR2_DEPRECATED

	config BR2_GDB_VERSION_7_0_1
		bool "gdb 7.0.1"
		depends on !BR2_bfin
		depends on BR2_DEPRECATED
		depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
		select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)

	config BR2_GDB_VERSION_7_1
		bool "gdb 7.1"
		depends on !BR2_bfin
		depends on BR2_DEPRECATED
		depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
		select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)

	config BR2_GDB_VERSION_7_2
		bool "gdb 7.2.x"
		depends on !BR2_bfin
		depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
		select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)

	config BR2_GDB_VERSION_7_3
		bool "gdb 7.3.x"
		depends on !BR2_bfin
		depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
		select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)

	config BR2_GDB_VERSION_7_4
		bool "gdb 7.4.x"
		depends on !BR2_bfin
		depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
		select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)

endchoice

comment "gdb support needs pthread debug support in toolchain"
	depends on !BR2_DEPRECATED && !BR2_bfin && !BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED

config BR2_GDB_VERSION
	string
	default "6.6a"     if BR2_GDB_VERSION_6_6
	default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
	default "6.8a"     if BR2_GDB_VERSION_6_8
	default "7.0.1a"   if BR2_GDB_VERSION_7_0_1
	default "7.1a"     if BR2_GDB_VERSION_7_1
	default "7.2a"     if BR2_GDB_VERSION_7_2
	default "7.3.1"    if BR2_GDB_VERSION_7_3
	default "7.4.1"    if BR2_GDB_VERSION_7_4
